package com.molichuxing.services.infrastructure.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.molichuxing.framework.dao.RootMapper;
import com.molichuxing.services.infrastructure.bean.UserBean;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @author liyg
 * @since 2019-08-12
 */
public interface UserMapper extends RootMapper<UserBean> {

	/**
	 * 获取用户基本信息
	 * 
	 * @param ids
	 * @return
	 */
	List<UserBean> getByIds(@Param("ids") List<Integer> ids);

	/**
	 * 获取用户信息
	 * 
	 * @param name
	 * @param phone
	 * @param realName
	 * @return
	 */
	UserBean getUserByNameAndPhone(@Param("name") String name, @Param("phone") String phone,
			@Param("realName") String realName);

	/**
	 * 获取用户列表
	 * 
	 * @param name
	 * @param phone
	 * @param realName
	 * @return
	 */
	List<UserBean> getListByNameAndPhone(@Param("name") String name, @Param("phone") String phone,
			@Param("realName") String realName);

	/**
	 * 查询总条数
	 * 
	 * @param map
	 * @return
	 */
	long getUserPageCount(Map<String, Object> map);

	/**
	 * 查询列表分页数据
	 * 
	 * @param map
	 * @param pageSize 
	 * @param pageNum 
	 * @return
	 */
	List<UserBean> getUserPage(@Param("params")Map<String, Object> map,@Param("pageNum") Integer pageNum,@Param("pageSize") Integer pageSize);

	/**
	 * 修改用户是否拉入黑名单状态
	 * @param id
	 * @param isBlack
	 * @return
	 */
	int updateIsBlack(@Param("id") Integer id,@Param("isBlack") Boolean isBlack);

	/**
	 * 修改用户地址
	 * @param realName
	 * @param email
	 * @param address 
	 * @param userId
	 * @return
	 */
	int modifyUser(@Param("realName")String realName,@Param("email") String email,@Param("address") String address, @Param("userId") Integer userId);

	/**
	 * 修改用户地址
	 * @param address
	 * @param userId
	 * @return
	 */
	int modifyUserAddress(@Param("address")String address,@Param("userId") Integer userId);

	/**
	 * 修改用户姓名
	 * @param realName
	 * @param userId
	 * @return
	 */
	int modifyUserRealName(@Param("realName")String realName, @Param("userId") Integer userId);

	/**
	 * 修改用户邮箱
	 * @param address
	 * @param email
	 * @param userId
	 * @return
	 */
	int modifyUserEmail(@Param("address") String address,@Param("email") String email,@Param("userId") Integer userId);

	/**
	 * 获取用户信息
	 * @param openId
	 * @return
	 */
	UserBean getByOpenId(@Param("openId") String openId);


	/**
	 * 修改用户微信openId
	 * @param openId
	 * @param userId
	 * @return
	 */
	int modifyUserOpenId(@Param("openId") String openId,@Param("userId") Integer userId);

	/**
	 * 修改用户微信为空
	 * @param openId
	 * @return
	 */
	int modifyUserByOpenId(@Param("openId") String openId);

	/**
	 * 修改用户是否下过单
	 * @param isOrder
	 * @param userId
	 * @return
	 */
	int modifyUserIsOrder(@Param("isOrder") Boolean isOrder,@Param("userId") Integer userId);

}
